/*
*	Project: Aethon
*
*	File: Eye.h
*
*	Author: Jonathan Hersack
*
*	Date: 2/15/2009
*
*   Purpose: The Eye contains the look at information for the viewpoint and 
*   the wireframe and activity modifier flags.
*/

#ifndef EYE_H_
#define EYE_H_

#include <iostream>
#include "vector3f.h"
#include <GL/glut.h>
#include "../include/Quaternion.h"
#include <math.h>
using namespace std;


class Eye{

    bool isWireframe;
    bool isActive;  
	Quaternion yRotation;//heading
	Quaternion xRotation;//pitch
	vector3f lookAt;
	
	public:
	//constructors
	Eye()
	{
	vector3f look(0,0,0);
	setLookAt(look);
	setIsWireframe(false);
	setIsActive(false);
	}
	
	Eye(vector3f look)
	{
	setLookAt(look);
	setIsWireframe(false);
	setIsActive(false);
	}//end constructor
	
	void update(vector3f modelPosition, vector3f modelDirection);
	
	//gets and sets-----------------------------------------------------------   		
	void setIsWireframe(bool wire)
	{
         isWireframe = wire;
    }//end setiswire
    
	bool getIsWireframe()
	{
         return isWireframe;
    }//end getiswire
    
	void setIsActive(bool active)
	{
         isActive = active;
    }//end setiswire
    
	bool getIsActive()
	{
         return isActive;
    }//end getisactive
    
   	void setLookAt(vector3f look)
	{
         lookAt = look;
    }//end setlookat
	
	vector3f getLookAt()
	{
         return lookAt;
    }//end getlookat

};//end class

#endif //EYE_H_

